<?php namespace Admin\Controller;
use Hdphp\Controller\Controller;  //核心框架控制器
use Admin\Model\Category;
class CategoryController extends CommonController{
	private $model;   //设置私有属性
	//构造函数，自动实例化模型
	public function __init(){
		//调用commoncontroller 的__init(),不然会被覆盖
		parent::__init();
		//实例化分类模型
		$this->model = new Category;
	}
	//载入模板
	public function index(){
		//获取数据库里面的类型
		// 统计数据的数量
		$count = $this->model->count();
		//分页，每10条数据一页
		$page = Page::row(10)->make($count);
		//获取数据按着升序排列
		$data = $this->model->join("type","type_tid","=","tid")->orderBy('csort','ASC')->get();
		//把分类的名称压入相对应的数组中
		foreach ($data as $k => $v) {
			$data[$k]['pname']= $this->model->where("cid={$v['pid']}")->lists("cname");
		}
		//变成树状结构
		$data = Data::tree($data,'cname');
		//把字符串转为数组
		$limit = explode(',',Page::limit());
		// p($limit);
		//截取数组，从0开始，每10个一页
		$data = array_slice($data, $limit[0],$limit[1]);
		// p($data);
		//没有分类时，先添加分类
		if(!$data) View::success('请先添加分类',U('add'));
		View::with('page',$page);
		View::with('data',$data);
		View::make();
	}
	//添加
	public function add(){
		//AJAX传输，验证
		if(IS_AJAX){
			//如我没有通过验证
			if(!$this->model->store()){
				//返回错误
				echo json_encode(array('status'=>false,'message'=>$this->model->getError()));
			}else{
				//通过就弹出提示
				echo json_encode(array('status'=>true,'message'=>'添加成功'));
			}
				exit;
		}
		//得到所有的类型，分配下去
		$typeModel = new \Admin\Model\Type;
		$type = $typeModel->get();
		View::with('type',$type);
		View::make();
	}
	//删除
	public function del(){
		//得到要删除的ID
		$cid = Q('get.cid',0,'intval');
		//执行模型的删除方法
		$this->model->del($cid);
		go(U('index'));
	}
	//编辑
	public function edit(){
		//获得编辑分类的ID
		$cid = Q('get.cid',0,'intval');
		if(IS_AJAX){
			//如果不通过验证，则返回错误
			if(!$this->model->edit()){
				echo json_encode(array('status'=>false,'message'=>$this->model->getError()));
			}else{
				echo json_encode(array('status'=>true,'message'=>'修改成功'));
			}
			exit;
		}
		//获取需要编辑的tid,获取旧数据，分配下去
		$oldData=$this->model->where("cid={$cid}")->find();
		View::with('oldData',$oldData);
		//获取所属分类的数据
		$cateData = $this->model->others($cid);
		View::with('cateData',$cateData);
		//得到所有的类型，分配下去
		$typeModel = new \Admin\Model\Type;
		$type = $typeModel->get();
		View::with('type',$type);
		View::make();
	}
	//添加子类
	public function addSon(){
		if(IS_AJAX){
			if(!$this->model->store()){
				echo json_encode(array('status'=>0,'message'=>$this->model->getError()));
			}else{
				echo json_encode(array('status'=>1,'message'=>'添加成功'));
			}
			exit;
		}
		//获取父级
		$cid = Q('get.cid',0,'intval');
		$pdata = $this->model->where("cid={$cid}")->find();
		//实例化类型
		$typeModel = new \Admin\Model\Type;
		$type = $typeModel->get();
		View::with('type',$type);
		View::with('pdata',$pdata);
		View::make();
	}




	
}



?>